Houdini 13.0 Одежда

Непрерывное обнаружение столкновений (Continuous collision detection)

Cloth Solver Houdini использует основанное на геометрии обнаружение столкновений. Полигоны геометрии столкновения используются, чтобы столкивться со всеми объектами симуляции ткани. Это гораздо точнее чем использование SDF (signed distance function) объемов столкновения. Эта модель столкновений корректно вычисляет проходы столкновений ткани между кадрами и это не требует, выполнения подшагов симуляции ткани, чтобы обнаружить эти типы столкновений. Cloth Solver полагает, что движение геометрии столкновения во времени вычисляет столкновения.

Вот пример, который показывает крайний случай, где коллайдер тела ткани ясно перемещается сквозь ткань через два кадра, и столкновение все еще работает без любого пользовательского вмешательства.

Толщина (Thickness)

Столкновения работают с толщиной ткани. У каждого объекта ткани есть толщина. Толщина по умолчанию составляет 1 мм, используя метры в качестве Ваших единиц измерения по умолчанию. Форма столкновения, которая используется тканью, является округленным слоем вокруг ткани. Подобный округленный слой существует вокруг любых объектов столкновения, установленных с Deforming Collider. Вы можете визуализировать толщину (thickness) ткани наряду с inter-penetration и скоростью, используя параметры на вкладке Visualization Cloth Object.

Слой толщины вокруг Cloth Object может визуализироваться, используя настройки Visualization.

Коллайдер тела ткани (Cloth body collider)

Инструмент полки Deforming Collider создает Static Object, который сконфигурирован, чтобы использовать основанные на геометрии столкновения для деформации геометрии. Настройте объект, который столкнется с тканью с помощью инструмента полки Deforming Collider или эквивалентного ему. Этот инструмент полки создает правильную геометрию столкновения с корректными атрибутами.

Использование активных и пассивных объектов RBD придаст столкновения ткани. Объекты RBD не затрагиваются объектами ткани. Чтобы моделировать эти типы взаимодействий, преобразуйте свои объекты RBD в объекты симуляции ткани и увеличьте параметры жесткости (stiffness).

Интерполяция времени подшагов (Interpolation at sub-step times)

Чтобы гарантировать гладкие взаимодействия анимированным персонажем, солвер ткани использует нелинейную схему интерполяции, которая берет во внимание и позиции и скорости анимации точек. Поэтому, важно, чтобы у анимированной геометрии персонажа были точные мгновенные скорости точек прежде, чем она войдет в DOPs. Для этой цели может использоваться Trail SOP. Правильно сконфигурированный Trail SOP добавляется автоматически, если Вы используете инструмент полки Deforming Collider, чтобы создать Вашего персонажа в симуляции ткани.

Сгибание руки (Pinch handling)

В некоторых случаях, невозможно решить столкновения для Cloth Solver. Например, когда ткань становится пойманной в ловушку между частями анимированной геометрии которая начала самопересекаться. В таких случаях нужно специальное решение, чтобы управлять тканью, которая самопроникает через себя и тела столкновения. Восстановление ткани от взаимопроникновения обрабатывается осторожно, сохраняя целостность ткани. Один из прецедентов, который ясно демонстрирует это, анимация кожи персонажа, таким образом, что локоть руки проходит через тело. Collider тела с одеждой сверху руки проходит через ткань на теле. Принудительно пересеченная ткань с обеих сторон вынуждена войти в среднее положение, и затем не тащится больше сама, пересекает и воссоединяется с симуляцией ткани. Этот переход обрабатывается осторожно и не делает артефакты, которые могут вызвать неустойчивость ткани, приводящую к шуму или дрожанию.

Аккуратность (Accuracy)

Вкладка Accuracy на Cloth Solver содержит параметры, которые управляют аккуратностью, которая используется основанными на геометрии алгоритмами столкновения. Эти параметры нужны, чтобы управлять и разъединять проходы столкновений с проходами подшагов ткани, разрешая Вам настроить столкновения отдельно от интегратора ткани в определенной степени. Как с большинством настроек Cloth Solver, рекомендуется оставить эти параметры в их значениях по умолчанию для большинства случаев.

Симуляция персонажа, берущего кусок ткани

Есть несколько путей, которыми Вы можете моделировать персонажа, берущего кусок ткани. Следующее - примеры разных подходов.

Положитесь на обнаружение столкновений Вы можете сделать простую вспомогательную геометрию, которая фактически возьмет ткань и наденет ее. Однако, удостоверьтесь, что вспомогательная геометрия не зажимает ткани. Оставьте некоторое место, чтобы поместить туда ткань.
Присоедините пружинные (spring) ограничения Вы можете добавить пружины между некоторыми из точек ткани и точками на руке. Эти пружины должны быть активированы только, когда рука держит ткань. Вы можете сделать это, анимируя параметр Active на пружинных ограничителях (spring constraints).
Вручную анимируйте подмножество точек ткани Вы можете использовать атрибут точек pintoanimation , чтобы анимировать подмножество точек ткани. Установите этот атрибут на 1 для всех точек, которые должны быть анимированы вместе с геометрией в SOP Path. У других точек должно быть значение 0. Вы можете временно анимировать эти точки в SOPs.

Альтернативно, Вы можете использовать комбинацию вспомогательной геометрии и ограничений spring, где есть временно активные пружины между геометрией ткани и вспомогательной геометрией.

Подсказка

Чтобы получить устойчивый rest position, моделируйте свою оригинальную геометрию, пока она не перемещаться. Сохраните геометрию в файл *geo. Затем укажите объекту ткани SOP Path на этот *geo. файл и удостоверьтесь, что у restP есть оригинальные позиции точек.